home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Dr. Windows 3
/
dr win3.zip
/
dr win3
/
PROGRAMR
/
CLIKBR15.ZIP
/
TESTCLIK.ZIP
/
TESTCLIK.C
< prev
next >
Wrap
C/C++ Source or Header
|
1993-03-22
|
15KB
|
520 lines
/*============================================================================
testclik -- Demo program for ClickBar.DLL and ClickDlg.DLL
File : testclik.c
Prototype :
Call :
Library :
7 February 1992 - dlcampbell
(c) 1991 Campbell SoftWare
----------------------------------------------------------------------------*/
#define WINVER 0x0300
#include <windows.h>
#include <string.h>
#include <clickdlg.h>
#include <clickbar.h>
#include "testclik.h"
/*----------------------------------------------------------------------------
Prototypes
----------------------------------------------------------------------------*/
BOOL FAR PASCAL AboutDlgProc(HWND, WORD, WORD, LONG);
BOOL FAR PASCAL PickDlgProc(HWND, WORD, WORD, LONG);
void MakeHelpPathName(char *);
long FAR PASCAL WndProc(HWND, WORD, WORD, LONG);
short cxClient, cyClient;
int InitSettings, OldInitSettings;
char szAppName[] = "testclik";
HANDLE hInst;
HANDLE hClickBar, hClickDlg;
HWND hWndMain;
HWND hWndDlg = NULL;
HWND hWndDlg2 = NULL;
HWND hDlgModeLess;
FARPROC lpfnDisplayDlg, lpfnDlgMove, lpfnDlgSetup, lpfnDlgPlus;
FARPROC lpfnClickBarSetup;
static FARPROC lpfnPickDlgProc;
char szHelpFileName[EXE_NAME_MAX_SIZE+1]; /* Help file name*/
/*============================================================================
WinMain -- main window procedure for TestClik
File : testclik.C
Prototype : int PASCAL WinMain (HANDLE, HANDLE, LPSTR, int);
Call : WinMain (hInstance, hPrevInstance, lpszCmdParam, nCmdShow);
Library :
7 February 1992 - dlcampbell
(c) 1991 Campbell SoftWare
----------------------------------------------------------------------------*/
#pragma warn -par /* nCmdShow, lpszCmdParam not used */
int PASCAL WinMain (HANDLE hInstance, HANDLE hPrevInstance,
LPSTR lpszCmdParam, int nCmdShow)
{
MSG msg;
WNDCLASS WndClass;
HDC hdc;
TEXTMETRIC tm;
HMENU hMenu;
GLOBALHANDLE MyStructHandle;
FPWYNAPSESTRUCT MyStruct;
static char szMenuTitle[21 + 1];
if (hPrevInstance)
return FALSE;
WndClass.style = CS_HREDRAW | CS_VREDRAW;
WndClass.lpfnWndProc = (WNDPROC)WndProc;
WndClass.cbClsExtra = 0;
WndClass.cbWndExtra = 0;
WndClass.hInstance = hInstance;
WndClass.hIcon = LoadIcon(hInstance, szAppName);
WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
WndClass.hbrBackground = GetStockObject(WHITE_BRUSH);
WndClass.lpszMenuName = szAppName;
WndClass.lpszClassName = szAppName;
RegisterClass(&WndClass);
hdc = CreateIC("DISPLAY", NULL, NULL, NULL);
GetTextMetrics(hdc, &tm);
DeleteDC(hdc);
cxClient = GetSystemMetrics(SM_CXSCREEN);
cyClient = GetSystemMetrics(SM_CYSCREEN);
hClickBar = LoadLibrary("CLICKBAR.DLL");
if (hClickBar < 32)
{
FreeLibrary(hClickBar);
MessageBox(GetFocus(),"Dynamic Link Library CLICKBAR.DLL must be present",
szAppName, MB_ICONEXCLAMATION | MB_OK);
return 0;
}
hClickDlg = LoadLibrary("CLICKDLG.DLL");
if (hClickDlg < 32)
{
FreeLibrary(hClickDlg);
MessageBox(GetFocus(),"Dynamic Link Library CLICKDLG.DLL must be present",
szAppName, MB_ICONEXCLAMATION | MB_OK);
return 0;
}
lpfnDlgSetup = GetProcAddress(hClickDlg, "ClickBarDialogSetup");
lpfnDlgMove = GetProcAddress(hClickDlg, "ClickBarDialogMove");
lpfnDisplayDlg = GetProcAddress(hClickDlg, "ClickBarDialogProc");
lpfnClickBarSetup = GetProcAddress(hClickBar, "ClickBarSetup");
MyStructHandle = GlobalAlloc(GHND, sizeof(WYNAPSE_STRUCT));
MyStruct = (FPWYNAPSESTRUCT)GlobalLock(MyStructHandle);
lstrcpy(MyStruct->RegName, (LPSTR)"Your Name"); /* ClickBar RegName */
MyStruct->RegNumber = 0; /* ClickBar RegNumber */
GlobalUnlock(MyStructHandle);
(*lpfnClickBarSetup)(MyStructHandle);
GlobalFree(MyStructHandle);
hWndMain = CreateWindow(szAppName, /* window class name */
szAppName, /* window caption */
WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN,
CW_USEDEFAULT, /* initial x pos */
CW_USEDEFAULT, /* initial y pos */
CW_USEDEFAULT, /* initial x size */
CW_USEDEFAULT, /* initial y size */
NULL, /* parent window handle */
NULL, /* window menu handle */
hInstance, /* program instance handle */
NULL); /* creation parameters */
hMenu = GetSystemMenu(hWndMain, FALSE);
AppendMenu(hMenu, MF_SEPARATOR, 0, NULL);
AppendMenu(hMenu, MF_STRING, IDM_ABOUT, "About...");
AppendMenu(hMenu, MF_STRING, IDM_Pick, "Pick...");
AppendMenu(hMenu, MF_STRING, IDWHELP, "Help....");
hInst = hInstance;
MakeHelpPathName(szHelpFileName);
ShowWindow(hWndMain, nCmdShow);
UpdateWindow(hWndMain);
hWndDlg = CreateDialog(hInst, "CLICK", hWndMain,
MakeProcInstance((*lpfnDisplayDlg), hInst));
lstrcpy(szMenuTitle, "AbNormal");
SendDlgItemMessage(hWndDlg, IDXCOMBO, CB_ADDSTRING, 0, (LONG)(LPSTR)szMenuTitle);
lstrcpy(szMenuTitle, "AsNormal");
SendDlgItemMessage(hWndDlg, IDXCOMBO, CB_ADDSTRING, 0, (LONG)(LPSTR)szMenuTitle);
lstrcpy(szMenuTitle, "ProNormal");
SendDlgItemMessage(hWndDlg, IDXCOMBO, CB_ADDSTRING, 0, (LONG)(LPSTR)szMenuTitle);
lstrcpy(szMenuTitle, "Not Normal");
SendDlgItemMessage(hWndDlg, IDXCOMBO, CB_ADDSTRING, 0, (LONG)(LPSTR)szMenuTitle);
lstrcpy(szMenuTitle, "Huh?");
SendDlgItemMessage(hWndDlg, IDXCOMBO, CB_ADDSTRING, 0, (LONG)(LPSTR)szMenuTitle);
lstrcpy((LPSTR)szMenuTitle, "Normal");
SendDlgItemMessage(hWndDlg, IDXCOMBO, CB_ADDSTRING, 0, (LONG)(LPSTR)szMenuTitle);
SendDlgItemMessage(hWndDlg, IDXCOMBO, CB_SELECTSTRING, -1, (LONG)(LPSTR)szMenuTitle);
SendMessage(hWndMain, WM_NCACTIVATE, 1, 0L);
while (GetMessage(&msg, NULL, 0, 0))
{
if ((hWndDlg == 0 || !IsDialogMessage(hWndDlg, &msg)) && (hDlgModeLess == 0 || !IsDialogMessage(hDlgModeLess, &msg)))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
/*----------------------------------------------------------------------------
Now free the DLLs used in the application...
----------------------------------------------------------------------------*/
FreeLibrary(hClickBar);
FreeLibrary(hClickDlg);
return msg.wParam;
} /* int PASCAL WinMain */
#pragma warn .par
/*============================================================================
AboutDlgProc -- Displays the EGO box for the application
File : ExitWin.C
Prototype : BOOL FAR PASCAL AboutDlgProc (HWND, WORD, WORD, LONG)
Call : AboutDlgProc (hDlg, message, wParam, lParam)
Library :
7 February 1992 - dlcampbell
(c) 1991 Campbell SoftWare
----------------------------------------------------------------------------*/
BOOL FAR PASCAL AboutDlgProc (HWND hDlg, WORD message, WORD wParam,
LONG lParam)
{
char szBuffer[100];
switch (message)
{
case WM_INITDIALOG :
wsprintf(szBuffer, "%s at %s", (LPSTR) __DATE__, (LPSTR) __TIME__);
SetWindowText(GetDlgItem(hDlg, ID_VERSION), szBuffer);
return TRUE;
case WM_COMMAND :
switch (wParam)
{
case IDOK :
case IDCANCEL :
if (HIWORD(lParam) == BN_CLICKED)
EndDialog(hDlg, wParam);
return TRUE;
default :
return TRUE;
}
default :
return FALSE;
}
} /* AboutDlgProc */
/*============================================================================
PickDlgProc -- Displays the EGO box for the application
File : ExitWin.C
Prototype : BOOL FAR PASCAL